﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using BusinessLogicLayer;
using System.Text.RegularExpressions;
using BusinessEntities;

namespace QL_HoSoBA
{
    public partial class frmNhanVienTiepNhan : DevComponents.DotNetBar.Office2007RibbonForm
    {
        public frmNhanVienTiepNhan()
        {
            InitializeComponent();
        }
        #region Show TabControls theo chỉ mục
        public void ShowForm(int index)
        {
            tabControlNhanVienTiepNhan.SelectedTabIndex=index;
            tabControlNhanVienTiepNhan.Show();
        }
        #endregion
                
        private static TiepNhanBN_Manager tiepnhan = new TiepNhanBN_Manager();

        private int sl;

        #region Load Danh Sách Tiếp Nhận
        private void btnLoadDSTiepNhan_Click(object sender, EventArgs e)
        {
            grwTiepNhanBN.DataSource = tiepnhan.TiepNhanBN_TrongNgay_All();
            LoadDSTiepNhap();
        }

        private void LoadDSTiepNhap()
        {
            grwTiepNhanBN.DataSource = tiepnhan.TiepNhanBN_TrongNgay_All();
            grwTiepNhanBN.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                         System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            CanChinh(grwTiepNhanBN);
        }

        private void CanChinh(DataGridView grw)
        {
            grw.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                         System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grw.Columns[0].Width = 80;
            grw.Columns[1].Width = 150;
            grw.Columns[2].Width = 150;
            grw.Columns[3].Width = 150;
            grw.Columns[4].Width = 150;
            grw.Columns[5].Width = 90;
            grw.Columns[6].Width = 90;
            grw.Columns[7].Width = 90;
            grw.Columns[8].Width = 150;
            grw.Columns[9].Width = 150;
            grw.Columns[10].Width = 150;
            grw.Columns[11].Width = 150;
        }
        #endregion

        #region Load Form

        private void frmNhanVienTiepNhan_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        public void LoadData()
        {
            cbbPhongKham.DataSource = tiepnhan.PhongKham_All();
            cbbPhongKham.DisplayMember = "PhongKham";
            cbbDoiTuong.DataSource = tiepnhan.DoiTuong_All();
            cbbDoiTuong.DisplayMember = "TenDT";
            cbbPhongKham1.DataSource = tiepnhan.PhongKham_All();
            cbbPhongKham1.DisplayMember = "PhongKham";
            cbbDoiTuong1.DataSource = tiepnhan.DoiTuong_All();
            cbbDoiTuong1.DisplayMember = "TenDT";
            grwPhongKham.DataSource = tiepnhan.PhongKham_HienTrang();
            grwPhongKham.DataSource = tiepnhan.PhongKham_TongBNCho();
            LoadPhongKham();
            LoadDSTiepNhap();
            dtpNgaySinh.MaxDate = DateTime.Now.Date;
            errorProviderNgaySinh.Clear();
        }

        private void LoadPhongKham()
        {
            grwPhongKham.Font = new System.Drawing.Font("Times New Roman", 12F, System.Drawing.FontStyle.Regular,
                System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            grwPhongKham.Columns[0].Width = 120;
            grwPhongKham.Columns[1].Width = 400;
        }

        #endregion
        // Hiển thị lên control khi click vào ô trong dtgvwTiepNhanBN
        private void grwTiepNhanBN_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int row = e.RowIndex;
            try
            {
                txtMaBN.Text = grwTiepNhanBN.Rows[row].Cells[0].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[0].Value.ToString();
                cbbPhongKham.Text = grwTiepNhanBN.Rows[row].Cells[1].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[1].Value.ToString();
                dtpNgayNhapVien.Value = grwTiepNhanBN.Rows[row].Cells[2].Value.ToString() == "" ? DateTime.Now.Date : DateTime.Parse(grwTiepNhanBN.Rows[row].Cells[2].Value.ToString());
                txtHoTen.Text = grwTiepNhanBN.Rows[row].Cells[3].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[3].Value.ToString();
                dtpNgaySinh.Value = grwTiepNhanBN.Rows[row].Cells[4].Value.ToString() == "" ? DateTime.Now.Date : DateTime.Parse(grwTiepNhanBN.Rows[row].Cells[4].Value.ToString());
                txtTuoi.Text = grwTiepNhanBN.Rows[row].Cells[5].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[5].Value.ToString();
                string gt = grwTiepNhanBN.Rows[row].Cells[6].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[6].Value.ToString();
                if (gt == "Nam")
                    rdNam.Checked = true;
                else
                    rdNu.Checked = true;
                cbbDanToc.Text = grwTiepNhanBN.Rows[row].Cells[7].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[7].Value.ToString();
                txtNgheNghiep.Text = grwTiepNhanBN.Rows[row].Cells[8].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[8].Value.ToString();
                txtSDT.Text = grwTiepNhanBN.Rows[row].Cells[9].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[9].Value.ToString();
                txtDiaChi.Text = grwTiepNhanBN.Rows[row].Cells[10].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[10].Value.ToString();
                cbbDoiTuong.Text = grwTiepNhanBN.Rows[row].Cells[11].Value.ToString() == "" ? "" : grwTiepNhanBN.Rows[row].Cells[11].Value.ToString();
                if (txtSDT.Text.Length < 9 && txtSDT.Text != "")
                    errorProviderSoDienThoai.SetError(txtSDT, "Số điện thoại phải ít nhất 10 số !");
                else
                    errorProviderSoDienThoai.Clear();
            }
            catch
            {
            }
        }

        #region Sự Kiện Của Các textbox,cbb,...
        private void txtMaBN_TextChanged(object sender, EventArgs e)
        {
            if (txtMaBN.Text != "")
                btnCapNhat.Enabled = true;
            else
                btnCapNhat.Enabled = false;
        }
        private void txtHoTen_TextChanged(object sender, EventArgs e)
        {
            if (txtHoTen.Text.Trim() != "")
                errorProviderHoTen.Clear();
            else
                errorProviderHoTen.SetError(txtHoTen, "Dữ liệu nhập không hợp lệ !");
        }

        private void dtpNgaySinh_ValueChanged(object sender, EventArgs e)
        {
            if (dtpNgaySinh.Value.ToShortDateString() != DateTime.Today.Date.ToShortDateString())
            {
                errorProviderNgaySinh.Clear();
                txtTuoi.Text = (DateTime.Now.Year - dtpNgaySinh.Value.Year).ToString();
            }
            else
            {
                errorProviderNgaySinh.SetError(dtpNgaySinh, "Dữ liệu nhập không hợp lệ !");
                txtTuoi.Clear();
            }
        }

        private void txtTuoi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void txtSDT_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        private void txtSDT_TextChanged(object sender, EventArgs e)
        {
            if (txtSDT.Text.Trim().Length > 9)
                errorProviderSoDienThoai.Clear();
            else
                errorProviderSoDienThoai.SetError(txtSDT, "Số điện thoại phải ít nhất 10 số !");
        }

        private void cbbDanToc_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbDanToc.Text.Trim() != "")
                errorProviderDanToc.Clear();
            else
                errorProviderDanToc.SetError(cbbDanToc, "Dữ liệu nhập không hợp lệ !");
        }

        private void txtDiaChi_TextChanged(object sender, EventArgs e)
        {
            if (txtDiaChi.Text.Trim() != "")
                errorProviderDiaChi.Clear();
            else
                errorProviderDiaChi.SetError(txtDiaChi, "Dữ liệu nhập không hợp lệ !");
        }

        #endregion

        private void btnTiepNhan_Click(object sender, EventArgs e)
        {
            string gioitinh = "";
            if (rdNam.Checked)
                gioitinh = "Nam";
            if (rdNu.Checked)
                gioitinh = "Nữ";
            try
            {
                if (KiemTraNhap())
                {
                    if (tiepnhan.TiepNhanBN_TimTheoMaBN(txtMaBN.Text).Rows.Count == 0)
                    {
                        if (MessageBox.Show("Bạn có muốn thêm không", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            int kq1 = tiepnhan.TiepNhanBN_Them(new TiepNhanBN_Info(txtMaBN.Text, cbbPhongKham.Text, dtpNgayNhapVien.Value,
                                GomKhoangTrang(txtHoTen.Text).Trim(), dtpNgaySinh.Value, Convert.ToInt32(txtTuoi.Text), gioitinh, cbbDanToc.Text, txtNgheNghiep.Text, txtSDT.Text,
                                GomKhoangTrang(txtDiaChi.Text).Trim(), cbbDoiTuong.Text));
                            int kq2 = tiepnhan.PhongKhamBN_CapNhatSL(cbbPhongKham.Text, sl + 1);
                            if (kq1 > 0 && kq2 > 0)
                            {
                                MessageBox.Show("Thêm thành công !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                grwPhongKham.DataSource = tiepnhan.PhongKham_TongBNCho();
                                LoadDSTiepNhap();
                                CanChinh(grwTiepNhanBN);
                                sl = sl + 1;
                                return;
                            }
                            else
                            {
                                MessageBox.Show("Thêm thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                return;
                            }
                        }
                        else
                            return;
                    }
                    else
                    {
                        MessageBox.Show("Mã bệnh án, hoặc mã bệnh nhân đã tồn tại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
                else
                {
                    MessageBox.Show("Lỗi dữ liệu nhập !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private string GomKhoangTrang(string str)
        {
            string strPattern = @"[\s]+";
            Regex rgx = new Regex(strPattern);
            string Ouput = rgx.Replace(str, " ");
            return Ouput.Trim();
        }

        private bool KiemTraNhap()
        {
            bool kq = true;
            if (txtHoTen.Text.Trim() == "" || txtDiaChi.Text.Trim() == "" || dtpNgaySinh.Value.ToShortDateString() == DateTime.Today.Date.ToShortDateString() || cbbDanToc.Text.Trim() == "")
            {
                if (txtHoTen.Text.Trim() == "")
                    errorProviderHoTen.SetError(txtHoTen, "Bạn chưa nhập dữ liệu");
                if (dtpNgaySinh.Value.ToShortDateString() == DateTime.Today.Date.ToShortDateString())
                    errorProviderNgaySinh.SetError(dtpNgaySinh, "Ngày sinh không hợp lệ");
                if (cbbDanToc.Text.Trim() == "")
                    errorProviderDanToc.SetError(cbbDanToc, "Bạn chưa nhập dữ liệu");
                if (txtDiaChi.Text.Trim() == "")
                    errorProviderDiaChi.SetError(txtDiaChi, "Bạn chưa nhập dữ liệu");
                kq = false;
            }
            else
            {
                kq = true;
            }
            return kq;
        }

        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            string gioitinh = "";
            if (rdNam.Checked)
                gioitinh = "Nam";
            if (rdNu.Checked)
                gioitinh = "Nữ";
            try
            {
                if (KiemTraNhap())
                {
                    if (MessageBox.Show("Bạn có muốn cập nhật không ?", "???", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        int kq = tiepnhan.TiepNhanBN_CapNhat(new TiepNhanBN_Info(txtMaBN.Text, cbbPhongKham.Text, dtpNgayNhapVien.Value,
                            GomKhoangTrang(txtHoTen.Text).Trim(), dtpNgaySinh.Value, Convert.ToInt32(txtTuoi.Text), gioitinh, cbbDanToc.Text, GomKhoangTrang(txtNgheNghiep.Text).Trim(), txtSDT.Text,
                            GomKhoangTrang(txtDiaChi.Text).Trim(), cbbDoiTuong.Text));
                        if (kq > 0)
                        {
                            MessageBox.Show("Cập nhật thành công !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            grwPhongKham.DataSource = tiepnhan.PhongKham_TongBNCho();
                            LoadPhongKham();
                            grwTiepNhanBN.DataSource = tiepnhan.TiepNhanBN_TimTheoMaBN(txtMaBN.Text);
                            CanChinh(grwTiepNhanBN);
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Cập nhật thất bại !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    else
                        return;

                }
                else
                {
                    MessageBox.Show("Dữ liệu cập nhật không hợp lệ !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void btnMacDinh_Click(object sender, EventArgs e)
        {
            txtMaBN.Text = "";
            txtHoTen.Text = "";
            txtDiaChi.Text = "";
            dtpNgaySinh.Value = DateTime.Now.Date;
            cbbDanToc.Text = "";
            txtSDT.Text = "";
            txtTuoi.Text = "";
            txtNgheNghiep.Text = "";
            rdNam.Checked = true;
            errorProviderHoTen.Clear();
            errorProviderNgaySinh.Clear();
            errorProviderDanToc.Clear();
            errorProviderDiaChi.Clear();
            errorProviderSoDienThoai.Clear();
            LoadData();
            HienChon();
            grwTiepNhanBN.DataSource = new object();
        }             

        private void btnLoadDSTiepNhan1_Click(object sender, EventArgs e)
        {
            grwTiepNhanBN2.DataSource = tiepnhan.TiepNhanBN_All();
            CanChinh(grwTiepNhanBN2);
            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
        }
        private void HienChon()
        {
            chkDanToc.Enabled = true;
            chkDiaChi.Enabled = true;
            chkDoiTuong.Enabled = true;
            chkHoTen.Enabled = true;
            chkMaBN.Enabled = true;
            chkNgayNhapVien.Enabled = true;
            chkNhomTuoi.Enabled = true;
            chkPhongKham.Enabled = true;
            chkNamNhapVien.Enabled = true;
            chkThangNhapVien.Enabled = true;
        }
        private void AnNhap()
        {
            txtDiaChi1.Enabled = false;
            txtHoTen1.Enabled = false;
            txtMaBN1.Enabled = false;
            cbbDanToc1.Enabled = false;
            cbbNhomTuoi1.Enabled = false;
            cbbPhongKham1.Enabled = false;
            dtpNgayNhapVien1.Enabled = false;
            cbbDoiTuong1.Enabled = false;
            dtpNamNhapVien1.Enabled = false;
            dtpThangNhapVien1.Enabled = false;
            dtpThangNhapVien1.Value = DateTime.Now.Date;
            dtpNamNhapVien1.Value = DateTime.Now.Date;
            dtpNgayNhapVien1.Value = DateTime.Now.Date;
            btnTimKiem1.Enabled = false;
            grwTiepNhanBN2.DataSource = new object();
            txtTongSo1.Clear();
        }
        private void AnChon()
        {
            chkDanToc.Enabled = false;
            chkDiaChi.Enabled = false;
            chkDoiTuong.Enabled = false;
            chkHoTen.Enabled = false;
            chkMaBN.Enabled = false;
            chkNgayNhapVien.Enabled = false;
            chkNhomTuoi.Enabled = false;
            chkPhongKham.Enabled = false;
            chkThangNhapVien.Enabled = false;
            chkNamNhapVien.Enabled = false;
        }
        private void chkMaBN_CheckedChanged(object sender, EventArgs e)
        {
            if (chkMaBN.Checked)
            {
                AnChon();
                chkMaBN.Enabled = true;
                txtMaBN1.Enabled = true;
                chkMaBN.Checked = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkPhongKham_CheckedChanged(object sender, EventArgs e)
        {
            if (chkPhongKham.Checked)
            {
                AnChon();
                chkPhongKham.Enabled = true;
                cbbPhongKham1.Enabled = true;
                btnTimKiem1.Enabled = true;

            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkNgayNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNgayNhapVien.Checked)
            {
                AnChon();
                chkNgayNhapVien.Enabled = true;
                dtpNgayNhapVien1.Enabled = true;
                dtpNgayNhapVien1.MaxDate = DateTime.Now;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkThangNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkThangNhapVien.Checked)
            {
                AnChon();
                chkThangNhapVien.Enabled = true;
                dtpThangNhapVien1.Enabled = true;
                dtpThangNhapVien1.MaxDate = DateTime.Now;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkNamNhapVien_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNamNhapVien.Checked)
            {
                AnChon();
                chkNamNhapVien.Enabled = true;
                dtpNamNhapVien1.Enabled = true;
                dtpNamNhapVien1.MaxDate = DateTime.Now;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkHoTen_CheckedChanged(object sender, EventArgs e)
        {
            if (chkHoTen.Checked)
            {
                AnChon();
                chkHoTen.Enabled = true;
                txtHoTen1.Enabled = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void grwTiepNhanBN2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int index = e.RowIndex;
            lblMaBN.Text = grwTiepNhanBN2.Rows[index].Cells[0].Value.ToString();
        }

        private int chon;
        private string t1 = "", t2 = "";
        private int LayChon()
        {
            if (chkMaBN.Checked)
                chon = 0;
            if (chkPhongKham.Checked)
                chon = 1;
            if (chkNgayNhapVien.Checked)
                chon = 2;
            if (chkThangNhapVien.Checked)
                chon = 3;
            if (chkNamNhapVien.Checked)
                chon = 4;
            if (chkHoTen.Checked)
                chon = 5;
            if (chkNhomTuoi.Checked)
                chon = 6;
            if (chkDiaChi.Checked)
                chon = 7;
            if (chkDanToc.Checked)
                chon = 8;
            if (chkDoiTuong.Checked)
                chon = 9;
            return chon;
        }
        private void btnTimKiem1_Click(object sender, EventArgs e)
        {
            LayChon();
            switch (chon)
            {
                case 0:
                    if (txtMaBN1.Text.Trim() != "")
                    {
                        DataTable dt = tiepnhan.TiepNhanBN_TimTheoMaBN(txtMaBN1.Text);
                        if (dt.Rows.Count != 0)
                        {
                            grwTiepNhanBN2.DataSource = dt;
                            CanChinh(grwTiepNhanBN2);
                            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Mã bệnh nhân [" + txtMaBN1.Text + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwTiepNhanBN2.DataSource = new object();
                            txtTongSo1.Clear();
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập mã bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 1:
                    DataTable dt1 = tiepnhan.TiepNhanBN_TimTheoPhongKham(cbbPhongKham1.Text);
                    if (dt1.Rows.Count != 0)
                    {
                        grwTiepNhanBN2.DataSource = dt1;
                        CanChinh(grwTiepNhanBN2);
                        txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Phòng khám [" + cbbPhongKham1.Text + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 2:
                    DataTable dt2 = tiepnhan.TiepNhanBN_TimTheoNgayNhapVien(dtpNgayNhapVien1.Value);
                    if (dt2.Rows.Count != 0)
                    {
                        grwTiepNhanBN2.DataSource = dt2;
                        CanChinh(grwTiepNhanBN2);
                        txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Ngày [" + dtpNgayNhapVien1.Value.ToShortDateString() + "] không có bệnh nhân nhập viện !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 3:
                    DataTable dt3 = tiepnhan.TiepNhanBN_TimTheoThangNhapVien(dtpThangNhapVien1.Value);
                    if (dt3.Rows.Count != 0)
                    {
                        grwTiepNhanBN2.DataSource = dt3;
                        CanChinh(grwTiepNhanBN2);
                        txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Tháng [" + dtpThangNhapVien1.Value.ToShortDateString() + "] không có bệnh nhân nhập viện !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 4:
                    DataTable dt4 = tiepnhan.TiepNhanBN_TimTheoNamNhapVien(dtpNamNhapVien1.Value);
                    if (dt4.Rows.Count != 0)
                    {
                        grwTiepNhanBN2.DataSource = dt4;
                        CanChinh(grwTiepNhanBN2);
                        txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Năm [" + dtpNamNhapVien1.Value.ToShortDateString() + "] không có bệnh nhân nhập viện !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 5:
                    if (txtHoTen1.Text.Trim() != "")
                    {
                        DataTable dt = tiepnhan.TiepNhanBN_TimTheoHoTenBN(GomKhoangTrang(txtHoTen1.Text).Trim());
                        if (dt.Rows.Count != 0)
                        {
                            grwTiepNhanBN2.DataSource = dt;
                            CanChinh(grwTiepNhanBN2);
                            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Tên bệnh nhân [" + GomKhoangTrang(txtHoTen1.Text).Trim() + "] không tồn tại !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwTiepNhanBN2.DataSource = new object();
                            txtTongSo1.Clear();
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập tên bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 6:
                    if (cbbNhomTuoi1.Text.Trim() != "")
                    {
                        DataTable dt6 = tiepnhan.TiepNhanBN_TimTheoNhomTuoi(int.Parse(t1), int.Parse(t2));
                        if (dt6.Rows.Count != 0)
                        {
                            grwTiepNhanBN2.DataSource = dt6;
                            CanChinh(grwTiepNhanBN2);
                            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Nhóm tuổi [" + cbbNhomTuoi1.Text + "] không có trong danh sách bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwTiepNhanBN2.DataSource = new object();
                            txtTongSo1.Clear();
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa chọn nhóm tuổi !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;

                case 7:
                    if (txtDiaChi1.Text.Trim() != "")
                    {
                        DataTable dt = tiepnhan.TiepNhanBN_TimTheoDiaChi(GomKhoangTrang(txtDiaChi1.Text).Trim());
                        if (dt.Rows.Count != 0)
                        {
                            grwTiepNhanBN2.DataSource = dt;
                            CanChinh(grwTiepNhanBN2);
                            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Địa chỉ [" + GomKhoangTrang(txtDiaChi1.Text).Trim() + "] không có trong danh sách !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwTiepNhanBN2.DataSource = new object();
                            txtTongSo1.Clear();
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa nhập địa chỉ !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;
                case 8:
                    if (cbbDanToc1.Text.Trim() != "")
                    {
                        DataTable dt8 = tiepnhan.TiepNhanBN_TimDanToc(cbbDanToc1.Text);
                        if (dt8.Rows.Count != 0)
                        {
                            grwTiepNhanBN2.DataSource = dt8;
                            CanChinh(grwTiepNhanBN2);
                            txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("Dân tộc [" + cbbDanToc1.Text + "] không có trong danh sách bệnh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            grwTiepNhanBN2.DataSource = new object();
                            txtTongSo1.Clear();
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Bạn chưa chọn dân tộc !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;
                case 9:
                    DataTable dt9 = tiepnhan.TiepNhanBN_TimDoiTuong(cbbDoiTuong1.Text);
                    if (dt9.Rows.Count != 0)
                    {
                        grwTiepNhanBN2.DataSource = dt9;
                        CanChinh(grwTiepNhanBN2);
                        txtTongSo1.Text = grwTiepNhanBN2.RowCount.ToString();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Đối tượng [" + cbbDoiTuong1.Text + "] không có trong danh sách bênh nhân !", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        grwTiepNhanBN2.DataSource = new object();
                        txtTongSo1.Clear();
                    }
                    break;
            }
        }
        private void LayNhomTuoi()
        {
            if (cbbNhomTuoi1.Text == "0 - 6")
            {
                this.t1 = "0"; this.t2 = "6";
            }
            if (cbbNhomTuoi1.Text == "7 - 15")
            {
                t1 = "7"; t2 = "15";
            }
            if (cbbNhomTuoi1.Text == "16 - 30")
            {
                t1 = "16"; t2 = "30";
            }
            if (cbbNhomTuoi1.Text == "31 - 45")
            {
                t1 = "31"; t2 = "45";
            }
            if (cbbNhomTuoi1.Text == "46 - 60")
            {
                t1 = "46"; t2 = "60";
            }
            if (cbbNhomTuoi1.Text == "61 trở lên")
            {
                t1 = "61"; t2 = "130";
            }

        }
        private void btnNhapMoi1_Click(object sender, EventArgs e)
        {
            AnChon();
            AnNhap();
            HienChon();
            chkDanToc.Checked = false;
            chkDiaChi.Checked = false;
            chkDoiTuong.Checked = false;
            chkHoTen.Checked = false;
            chkMaBN.Checked = false;
            chkNgayNhapVien.Checked = false;
            chkNhomTuoi.Checked = false;
            chkPhongKham.Checked = false;
            chkThangNhapVien.Checked = false;
            chkNamNhapVien.Checked = false;
            txtDiaChi1.Text = "";
            txtHoTen1.Text = "";
            txtMaBN1.Text = "";
            cbbNhomTuoi1.Text = "";
            dtpThangNhapVien1.Value = DateTime.Now.Date;
            dtpNamNhapVien1.Value = DateTime.Now.Date;
            dtpNgayNhapVien1.Value = DateTime.Now.Date;
            grwTiepNhanBN2.DataSource = new object();
            txtTongSo1.Clear();
        }

        private void chkDiaChi_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDiaChi.Checked)
            {
                AnChon();
                chkDiaChi.Enabled = true;
                txtDiaChi1.Enabled = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkDanToc_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDanToc.Checked)
            {
                AnChon();
                chkDanToc.Enabled = true;
                cbbDanToc1.Enabled = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkDoiTuong_CheckedChanged(object sender, EventArgs e)
        {
            if (chkDoiTuong.Checked)
            {
                AnChon();
                chkDoiTuong.Enabled = true;
                cbbDoiTuong1.Enabled = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void chkNhomTuoi_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNhomTuoi.Checked)
            {
                AnChon();
                chkNhomTuoi.Enabled = true;
                cbbNhomTuoi1.Enabled = true;
                btnTimKiem1.Enabled = true;
            }
            else
            {
                HienChon();
                AnNhap();
            }
        }

        private void cbbNhomTuoi1_SelectedIndexChanged(object sender, EventArgs e)
        {
            LayNhomTuoi();
        }

        private void btnXoa1_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn muốn xóa bệnh nhân có mã [" + lblMaBN.Text + "]?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    int kq = tiepnhan.TiepNhanBN_Xoa(int.Parse(lblMaBN.Text));
                    if (kq != 0)
                    {
                        MessageBox.Show("Xóa thành công !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnNhapMoi1.PerformClick();
                        return;
                    }
                    else
                        MessageBox.Show("Xóa thất bại, bệnh nhân này chưa đủ điều kiện để xóa !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                return;
            }
            catch
            { }
        }

        private void txtTongSo1_TextChanged(object sender, EventArgs e)
        {
            if (txtTongSo1.Text != "")
                btnXoa1.Enabled = true;
            else
                btnXoa1.Enabled = false;
        }

        private void grwTiepNhanBN2_DataError(object sender, DataGridViewDataErrorEventArgs e)
        {

        }

       

    }
}